home *** CD-ROM | disk | FTP | other *** search
- /* Illustration of 1-1 scaling for polar plot using MathFX library. */
- /* Copyright (©) 1995, The Xperts Group Inc. All Rights Reserved. */
- /* Author: Manolis S Pappas. */
-
- #include <stdio.h>
- #include <math.h>
-
- main()
- {
- int i,j;
- float dtr, theta, dx, dy, r;
- char text[3];
- float x0[361], y0[361];
- float x[361], y[361];
-
- dtr = 3.141592654/180.0;
- for (i=0; i<=360; i++) {
- x0[i] = cos(dtr * i);
- y0[i] = sin(dtr * i);
- }
-
- fxstar(1,1);
-
- /* Set up viewport and window, but do not draw box */
-
- fxenv(-1.3,1.3,-1.3,1.3,1,-2);
- for (i=1; i<=10; i++) {
- for (j=0; j<=360; j++) {
- x[j] = 0.1*i*x0[j];
- y[j] = 0.1*i*y0[j];
- }
-
- /* Draw circles for polar grid */
-
- fxline(361,x,y);
- }
-
- for (i=0; i<=11; i++) {
- theta = 30.0*i;
- dx = cos(dtr*theta);
- dy = sin(dtr*theta);
-
- /* Draw radial spokes for polar grid */
-
- fxjoin(0.0,0.0,dx,dy);
- sprintf(text,"%d",round(theta));
-
- /* Write labels for angle */
-
- if (dx >= 0)
- fxptex(dx,dy,dx,dy,-0.15,text);
- else
- fxptex(dx,dy,-dx,-dy,1.15,text);
- }
-
- /* Draw the graph */
-
- for (i=0; i<=360; i++) {
- r = sin(dtr*(5*i));
- x[i] = x0[i] * r;
- y[i] = y0[i] * r;
- }
- fxline(361,x,y);
-
- fxmtex("t",2.0,0.5,0.5,"\\frPolar Plot - r(\\gh)=sin 5\\gh");
-
- /* Close the plot at end */
-
- fxend();
- }
-